{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Python Practice 9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Practicing ANOVA on Random Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's play a bit with the ANOVA analysis on random data. First, we will generate a random dataset of 50000 points and plot it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(0)\n",
    "n_points = 50000\n",
    "random_points = np.random.normal(0, 1, n_points)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(50000,)"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "random_points.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGdCAYAAAAvwBgXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABJLklEQVR4nO3dd3gU1foH8O+mh5AEQgghECD0EmpooTcBBRT1Kio/bFiQIl70qthAxBtU7IqCBdsVUCliARKQ3gkEQgudBEIvSSjp8/sDErLJltndmTmzO9/P8+R5YHd252SyO/POOe95j0mSJAlEREREAniJbgAREREZFwMRIiIiEoaBCBEREQnDQISIiIiEYSBCREREwjAQISIiImEYiBAREZEwDESIiIhIGB/RDbCluLgYmZmZCA4OhslkEt0cIiIikkGSJOTk5CAqKgpeXrb7PHQdiGRmZiI6Olp0M4iIiMgJGRkZqF27ts1tdB2IBAcHA7jxi4SEhAhuDREREcmRnZ2N6Ojo0uu4LboOREqGY0JCQhiIEBERuRk5aRVMViUiIiJhGIgQERGRMAxEiIiISBgGIkRERCQMAxEiIiIShoEIERERCcNAhIiIiIRhIEJERETCMBAhIiIiYRiIEBERkTAMRIiIiEgYBiJEREQkDAMRIoUVFUv4dt1R7D6ZJbopRES6p+vVd4nc0bytGZjy514AwLFpgwS3hohI39gjQqSwfaeyRTeBiMhtMBAhIiIiYRiIEBERkTCaBSIJCQkwmUx47rnntNolERER6ZwmgcjWrVsxa9YstGrVSovdERERkZtQPRC5cuUKhg8fjq+++gpVq1ZVe3dERETkRlQPRMaMGYNBgwahX79+drfNy8tDdna22Q8RERF5LlXriMydOxfbt2/H1q1bZW2fkJCAN998U80mERERkY6o1iOSkZGB8ePH46effkJAQICs10ycOBFZWVmlPxkZGWo1j4iIiHRAtR6R5ORknD17FnFxcaWPFRUVYc2aNfjss8+Ql5cHb29vs9f4+/vD399frSYRacJkEt0CIiL3oVog0rdvX6Smppo99thjj6Fp06Z46aWXKgQhREREZDyqBSLBwcGIjY01eywoKAjVqlWr8DgREREZEyurEhERkTCarr67atUqLXdHREREOsceESIiIhKGgQgREREJw0CEiIiIhGEgQqQwlhEh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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(random_points)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The points indeed look pretty random. Since ANOVA test is designed for multiple data samples (or multiple groups), we will group the data into 50 samples of 1000 points each. \n",
    "Next, we will calculate the mean and standard deviation for each sample and plot them with error bars.\n",
    "\n",
    "Instead of creating the new array with the size of (50, 1000) we can use the `np.reshape` function to reshape the original array into the desired shape.\n",
    "It works in the following way:\n",
    "\n",
    "```python\n",
    "N = 1000\n",
    "M = 50\n",
    "initial_array = np.random.normal(0, 1, N*M)\n",
    "reshaped_array = np.reshape(initial_array, (M, N))\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Old shape:  (50000,)\n",
      "New shape:  (50, 1000)\n"
     ]
    }
   ],
   "source": [
    "num_samples = 50\n",
    "num_points_per_sample = 1000\n",
    "random_samples = np.reshape(random_points, (num_samples, num_points_per_sample))\n",
    "\n",
    "print(\"Old shape: \", random_points.shape)\n",
    "print(\"New shape: \", random_samples.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "means = np.mean(random_samples, axis=1)\n",
    "stds = np.std(random_samples, axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To plot the means values of each sample with the errorbars defined by their standard deviation, we can use the `plt.errorbar` function.\n",
    "\n",
    "```python\n",
    "plt.errorbar(x, y, yerr=std, fmt='o')\n",
    "```\n",
    "\n",
    "Where `x` is the x-axis values, `y` is the y-axis values, `yerr` is the error values, and `fmt` defines the symbol for plotting the points (in this case, 'o' for circles).\n",
    "\n",
    "Since in our case we don't have specific x-axis values, we can use the indices of the samples as x-axis values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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esgB5op7CNqwYYPmzJmjBQsWqLy8XCNGjND48eN15MiRsOWrqqp06623asSIESovL9fjjz+u2bNna+PGjYEy77zzju6++2799a9/1bZt29SrVy/l5ubqn//8Z9Bn3XDDDaqurg4se/fujet3BZyItjyxQw+5r9jxcWc9O383q4l7CFq+fLmmTZum6dOnq1+/fioqKlJ6erpWrlwZtvyqVavUq1cvFRUVqV+/fpo+fboeeOABPfXUU4Eyr7zyimbNmqWbbrpJffv21erVq/Xll1/qz3/+c9BntWvXTl6vN7D06NEjrt8VcCqmfIkNesgB5oprCKqrq9Pu3buVm5sbtD43N1dbt24Nu822bdtCyo8dO1a7du3S+fPnw25z9uxZnT9/Xt26BV8YDh48qLS0NGVkZGjKlCn66KOPIh5rbW2tampqghYA0RuXlaq3540MvF7345v1/i++QwBqAmrVAHPFNQSdOHFCFy9eVEpKStD6lJQU+Xy+sNv4fL6w5S9cuKATJ06E3eaxxx7TN77xDY0ePTqwbujQoXrppZf01ltvafXq1fL5fBo+fLhOnjwZ9jMKCwvl8XgCS3p6elO+KgA5ty1PLFGrBpjHlIbRLlfwhdAwjJB1jZUPt16Sli1bpj/84Q967bXXlJT01XPy8ePH684771T//v01evRovfnmm5KkF198Mew+8/Pz5ff7A8vRo0ej+3IAEpoV219QqwaYI65d5JOTk9W2bduQWp/jx4+H1PbU83q9Ycu3a9dO3bsHdwl96qmn9OSTT+rtt9/WgAEDGjyWTp06qX///jp48GDY991ut9xud9j3AMBs1KoB8RfXmqAOHTooOztbJSUlQetLSko0fPjwsNvk5OSElN+yZYsGDx6s9u3bB9b927/9m371q1+puLhYgwcPbvRYamtrVVlZqdRUfkkBAAATHofNmzdPzz//vNauXavKykrNnTtXR44c0cyZMyVdegx17733BsrPnDlThw8f1rx581RZWam1a9dqzZo1mj9/fqDMsmXL9MQTT2jt2rXq06ePfD6ffD6fPvvss0CZ+fPnq7S0VFVVVdq+fbvuuusu1dTU6L777ov3VwYAABYQ9xGjJ0+erJMnT2rx4sWqrq5WVlaWNm/erN69e0uSqqurg8YMysjI0ObNmzV37lw9++yzSktL0zPPPKM777wzUOa5555T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yu12t/ahOALn21ycb3Nxvs3F+TZXvM83DaMBAIAjURMEAAAciRAEAAAciRAEAAAciRAEAAAciRBksueee04ZGRlKSkpSdna23nvvvdY+JFt49913ddtttyktLU0ul0v/+Z//GfS+YRgqKChQWlqarrjiCo0aNUr79+9vnYO1gcLCQt18883q3Lmzevbsqdtvv10HDhwIKsM5j52VK1dqwIABgQHjcnJy9N///d+B9znX8VVYWCiXy6U5c+YE1nHOY6egoEAulyto8Xq9gffjea4JQSbasGGD5syZowULFqi8vFwjRozQ+PHjdeTIkdY+NMv7/PPPdeONN2rFihVh31+2bJmWL1+uFStWaOfOnfJ6vRozZkxgjjg0TWlpqX7605+qrKxMJSUlunDhgnJzc/X5558HynDOY+eqq67SkiVLtGvXLu3atUvf+c539L3vfS9wI+Bcx8/OnTv1u9/9TgMGDAhazzmPrRtuuEHV1dWBZe/evYH34nquDZhmyJAhxsyZM4PW9e3b13jsscda6YjsSZKxadOmwOsvv/zS8Hq9xpIlSwLrzp07Z3g8HmPVqlWtcIT2c/z4cUOSUVpaahgG59wMXbt2NZ5//nnOdRydOXPGuO6664ySkhJj5MiRxiOPPGIYBv++Y23hwoXGjTfeGPa9eJ9raoJMUldXp927dys3NzdofW5urrZu3dpKR+UMVVVV8vl8Qefe7XZr5MiRnPsY8fv9kqRu3bpJ4pzH08WLF7V+/Xp9/vnnysnJ4VzH0U9/+lNNmDBBo0ePDlrPOY+9gwcPKi0tTRkZGZoyZYo++ugjSfE/10ygapITJ07o4sWLSklJCVqfkpIin8/XSkflDPXnN9y5P3z4cGsckq0YhqF58+bpW9/6lrKysiRxzuNh7969ysnJ0blz53TllVdq06ZNyszMDNwIONextX79eu3Zs0c7d+4MeY9/37E1dOhQvfTSS/rmN7+pjz/+WP/6r/+q4cOHa//+/XE/14Qgk7lcrqDXhmGErEN8cO7j4+GHH9YHH3yg999/P+Q9znnsXH/99aqoqNCnn36qjRs36r777lNpaWngfc517Bw9elSPPPKItmzZoqSkpIjlOOexMX78+MB/9+/fXzk5Obrmmmv04osvatiwYZLid655HGaS5ORktW3bNqTW5/jx4yEJF7FV38uAcx97P/vZz/T666/rr3/9q6666qrAes557HXo0EHXXnutBg8erMLCQt144436zW9+w7mOg927d+v48ePKzs5Wu3bt1K5dO5WWluqZZ55Ru3btAueVcx4fnTp1Uv/+/XXw4MG4//smBJmkQ4cOys7OVklJSdD6kpISDR8+vJWOyhkyMjLk9XqDzn1dXZ1KS0s5981kGIYefvhhvfbaa/rLX/6ijIyMoPc55/FnGIZqa2s513Hw3e9+V3v37lVFRUVgGTx4sH70ox+poqJCV199Nec8jmpra1VZWanU1NT4//tucdNqRG39+vVG+/btjTVr1hgffvihMWfOHKNTp07GoUOHWvvQLO/MmTNGeXm5UV5ebkgyli9fbpSXlxuHDx82DMMwlixZYng8HuO1114z9u7da9x9991GamqqUVNT08pHbk0PPfSQ4fF4jHfeeceorq4OLGfPng2U4ZzHTn5+vvHuu+8aVVVVxgcffGA8/vjjRps2bYwtW7YYhsG5NsPXe4cZBuc8ln7+858b77zzjvHRRx8ZZWVlxsSJE43OnTsH7o3xPNeEIJM9++yzRu/evY0OHToYgwYNCnQpRsv89a9/NSSFLPfdd59hGJe6WS5cuNDwer2G2+02vv3tbxt79+5t3YO2sHDnWpLxwgsvBMpwzmPngQceCFw3evToYXz3u98NBCDD4Fyb4fIQxDmPncmTJxupqalG+/btjbS0NOOOO+4w9u/fH3g/nufaZRiG0fL6JAAAAGuhTRAAAHAkQhAAAHAkQhAAAHAkQhAAAHAkQhAAAHAkQhAAAHAkQhAAAHAkQhAAAHAkQhAAAHAkQhAAAHAkQhAAAHAkQhAAAHCk/wccrh25ny0GBQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.errorbar(np.arange(num_samples), means, yerr=stds/np.sqrt(num_points_per_sample), fmt='o')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we expected for the standard normal distribution, the mean values are around 0, and the error bars are about 1.0."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Running ANOVA test"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's now perform the ANOVA test on the random data. The ANOVA test is used to determine whether there are any statistically significant differences between the means of three or more independent (unrelated) groups.\n",
    "\n",
    "Given that we have 50 samples ($n$) of 1000 points each ($m$), we need to calculate the following values to perform the ANOVA test:\n",
    "\n",
    "\n",
    "- The error sum of squares (SSE): $$SSE = \\sum_{i=1}^{n} \\sum_{j=1}^{m} (X_{ij} - \\bar{X}_{i})^2 $$ \n",
    "We can calculate the SSE by first calculating the difference between the data in each sample and the mean of that sample, squaring the difference, and then summing all the squared differences.\n",
    "\n",
    "- The sum of squares between the samples (SSB):  $$ SSB = \\sum_{i=1}^{n} m (\\bar{X}_{i} - \\bar{X})^2 = m \\sum_{i=1}^{n}  (\\bar{X}_{i} - \\bar{X})^2 $$\n",
    "We can calculate the SSB by first calculating the difference between the mean of each sample and the overall mean, squaring the difference, multiplying by the number of data points in each sample, and then summing all the squared differences.\n",
    "\n",
    "- The total sum of squares (SST): $$ SST = SSE + SSB $$\n",
    "\n",
    "- The degrees of freedom between samples: $$ df_{b} = n - 1 $$\n",
    "\n",
    "- The degrees of freedom within samples: $$ df_{e} = n(m-1) $$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Implement these functions:\n",
    "\n",
    "def calculate_sse(samples, means, num_samples):\n",
    "    sse = 0 \n",
    "    for i in range(num_samples):\n",
    "        sse += np.sum((samples[i] - means[i])**2)\n",
    "    return sse\n",
    "\n",
    "def calculate_ssb(means, num_samples, num_points_per_sample):\n",
    "    ssb = 0\n",
    "    total_mean = np.mean(means)\n",
    "    for i in range(num_samples):\n",
    "        ssb += num_points_per_sample * (means[i] - total_mean)**2 \n",
    "    return ssb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "SSE = calculate_sse(random_samples, means, num_samples)\n",
    "SSB = calculate_ssb(means, num_samples, num_points_per_sample)\n",
    "\n",
    "dfb = num_samples - 1\n",
    "dfe = num_samples * (num_points_per_sample - 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error Sum of Squares (SSE):  49939.338441056374\n",
      "Sum of Squares between samples (SSB):  37.82251274054989\n",
      "Degrees of freedom between samples (dfb):  49\n",
      "Degrees of freedom within samples (dfe):  49950\n"
     ]
    }
   ],
   "source": [
    "print(\"Error Sum of Squares (SSE): \", SSE)\n",
    "print(\"Sum of Squares between samples (SSB): \", SSB)\n",
    "print(\"Degrees of freedom between samples (dfb): \", dfb)\n",
    "print(\"Degrees of freedom within samples (dfe): \", dfe)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also use the vectorized operations in NumPy to calculate these values efficiently. The main idea is to directly operate on 2D array (`samples`) to calculate the mean values and then use broadcasting to calculate the differences and sums.\n",
    "\n",
    "The issue is that `means` is a 1D array, and we cannot directly subtract it from the 2D array `samples`. We first need to reshape the `means` array to have the same shape as the `samples` array.\n",
    "\n",
    "```python\n",
    "means = means.reshape(len(samples), 1) # Reshape to (n, 1)\n",
    "```\n",
    "\n",
    "Now we can subtract the `means` array from the `samples` array. It will automatically subtract the corresponding mean value from each row of the `samples` array.\n",
    "\n",
    "```python\n",
    "diff = samples - means\n",
    "```\n",
    "\n",
    "This will return the array of the same shape as the `samples` array, where each element is the difference between the data point and the mean of the corresponding sample."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "def calculate_sse_vectorized(samples, means):\n",
    "    return np.sum((samples - means.reshape(len(samples), 1)) ** 2)\n",
    "\n",
    "def calculate_ssb_vectorized(means, num_points_per_sample):\n",
    "    total_mean = np.mean(means)\n",
    "    return num_points_per_sample * np.sum((means - total_mean) ** 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SSE and SSE_vec are equal:  True\n",
      "SSB and SSB_vec are equal:  True\n"
     ]
    }
   ],
   "source": [
    "SSE_vec = calculate_sse_vectorized(random_samples, means)\n",
    "SSB_vec = calculate_ssb_vectorized(means, num_points_per_sample)\n",
    "\n",
    "print(\"SSE and SSE_vec are equal: \", np.isclose(SSE, SSE_vec))\n",
    "print(\"SSB and SSB_vec are equal: \", np.isclose(SSB, SSB_vec))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To finish the ANOVA test, we need to calculate the mean square between samples (MSB) and the mean square within samples (MSE). The F-statistic is then calculated as the ratio of MSB to MSW.\n",
    "\n",
    "$$ MSB = \\frac{SSB}{df_{b}} $$\n",
    "$$ MSE = \\frac{SSE}{df_{e}} $$\n",
    "$$ F = \\frac{MSB}{MSE} $$\n",
    "\n",
    "Finally, we compare the F-statistic to the critical value from the F-distribution with degrees of freedom $df_{b}$ and $df_{e}$ at a desired significance level (in our case 0.05)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean Square between samples (MSB):  0.7718880151132631\n",
      "Mean Square within samples (MSE):  0.999786555376504\n",
      "F-value:  0.7720528056336806\n",
      "Critical F-value:  1.354\n"
     ]
    }
   ],
   "source": [
    "MSB = SSB / dfb\n",
    "MSE = SSE / dfe\n",
    "F = MSB / MSE\n",
    "\n",
    "print(\"Mean Square between samples (MSB): \", MSB)\n",
    "print(\"Mean Square within samples (MSE): \", MSE)\n",
    "print(\"F-value: \", F)\n",
    "\n",
    "print(\"Critical F-value: \", 1.354) # for alpha = 0.05, dfb = 49, dfe = 49950"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since our F-statistic is less than the crititical value, we cannot reject the null hypothesis (i.e. we cannot say that the data in the samples differs significantly).\n",
    "\n",
    "Let's summarize the results in the [ANOVA table](https://d138zd1ktt9iqe.cloudfront.net/media/seo_landing_files/anova-table-1642579664.png)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Source               | Sum of Squares (SS)  | Degrees of Freedom (df) | Mean Square (MS)     | F-value   \n",
      "---------------------------------------------------------------------------------------------------------\n",
      "Between samples      | 37.82                | 49                      | 0.77                 | 0.77      \n",
      "Within samples       | 49939.34             | 49950                   | 1.00                \n",
      "Total                | 49977.16             | 49999               \n"
     ]
    }
   ],
   "source": [
    "def print_anova_table(SSE, SSB, dfb, dfe):\n",
    "    MSB = SSB / dfb\n",
    "    MSE = SSE / dfe\n",
    "    F = MSB / MSE\n",
    "    total_SS = SSB + SSE\n",
    "    total_df = dfb + dfe\n",
    "\n",
    "    print(f\"{'Source':<20} | {'Sum of Squares (SS)':<20} | {'Degrees of Freedom (df)':<20} | {'Mean Square (MS)':<20} | {'F-value':<10}\")\n",
    "    print(\"-\" * 105)\n",
    "    print(f\"{'Between samples':<20} | {SSB:<20.2f} | {dfb:<20}    | {MSB:<20.2f} | {F:<10.2f}\")\n",
    "    print(f\"{'Within samples':<20} | {SSE:<20.2f} | {dfe:<20}    | {MSE:<20.2f}\")\n",
    "    print(f\"{'Total':<20} | {total_SS:<20.2f} | {total_df:<20}\")\n",
    "\n",
    "\n",
    "print_anova_table(SSE, SSB, dfb, dfe)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Practicing ANOVA on Lab Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's repeat the same analysis on the data from our lab. This data will contain some slow drifts, which might introduce some differences between the samples."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "lab_data = np.loadtxt('/Users/arslanmazitov/courses/psms/ex10/BFieldVSTime.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(lab_data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "sampled_lab_data = np.reshape(lab_data, (num_samples, num_points_per_sample))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "means = np.mean(sampled_lab_data, axis=1)\n",
    "stds = np.std(sampled_lab_data, axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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QB6PRx6PRwUFBTpz5ky7xxiGoeLiYqWlpalPnz667bbbVFlZGVCmsbFRDz/8sJKSktSvXz9NnjxZH330UUCZQYMGyeVyBdwWLFgQUKasrExjxozRV7/6VfXv31/5+fkqLy8PxVMHAABRIKxBaerUqSovL1dJSYlKSkpUXl6ugoKCdo9ZsWKFVq1apbVr16qsrExer1fjxo1TfX29WaawsFBbtmzR5s2btXv3bn322WeaNGmSLl68GPBYTz75pKqrq83b4sWLzX319fUaP368rrnmGu3du1e7d+9WYmKixo8fr/Pnz4e2IoD/hyUbAMBZYsP1wEePHlVJSYlKS0uVk5MjSXrhhReUm5urqqoqDRkypNUxhmFozZo1WrRoke655x5J0osvvqiUlBS9/PLLeuCBB+T3+7Vu3Tq99NJLGjt2rCRp48aNSk9P144dOzR+/Hjz8RISEuT1ets8v6qqKtXW1urJJ59Uenq6JKmoqEgjRozQiRMndN1114W0PgAAgPOErUVpz5498ng8ZkiSpFGjRsnj8ejdd99t85hjx47J5/MpPz/f3OZ2u5WXl2cec+DAAZ0/fz6gTFpamrKzs1s97tNPP62BAwfqm9/8pp566ik1NTWZ+4YMGaKkpCStW7dOTU1Namho0Lp16/T1r39dGRkZbZ5fY2Oj6urqAm4AACB6hS0o+Xw+JScnt9qenJwsn89neYwkpaSkBGxPSUkx9/l8PsXFxal///6WZSRp7ty52rx5s95++23NmTNHa9as0ezZs839CQkJ+vOf/6yNGzeqT58++spXvqI333xTf/zjHxUb23ZD27Jly8zxVh6Px2yJAgAA0anTQam4uLjVIOkrb/v375ckuVyuVscbhtHm9stduT+YY64s8+ijjyovL08jRozQj3/8Yz3//PNat26d/vnPf0qSGhoadP/99+uWW25RaWmp3nnnHX3961/Xd77zHTU0NLT5OxYuXCi/32/eTp482e45AQAAZ+v0GKU5c+bo3nvvbbfMoEGDdPjwYZ06darVvk8//bRVi1GLlvFEPp9Pqamp5vaamhrzGK/Xq6amJtXW1ga0KtXU1Gj06NGW5zRq1ChJ0t///ncNHDhQL7/8so4fP649e/YoJuZSXnz55ZfVv39//eEPf2jzObrdbrnd7nafOwAAiB6dblFKSkrS0KFD273Fx8crNzdX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rjZv77//vrkvrHVtwFZuvvlm48EHHwzYNnToUGPBggXddEbRSZKxZcsW835zc7Ph9XqN5cuXm9vOnTtneDwe4/nnn++GM4w+NTU1hiRj165dhmFQ55HQv39/47//+7+p6zCqr683Bg8ebGzfvt3Iy8sz5s6daxgGf9+hVlRUZHzjG99oc1+465oWJRtpamrSgQMHlJ+fH7A9Pz9f7777bjedVc9w7Ngx+Xy+gLp3u93Ky8uj7kPE7/dLkgYMGCCJOg+nixcvavPmzfr888+Vm5tLXYfRQw89pIkTJ2rs2LEB26nz0Pvb3/6mtLQ0ZWZm6t5779UHH3wgKfx1zUVxbeQf//iHLl68qJSUlIDtKSkp8vl83XRWPUNL/bZV9x9++GF3nFJUMQxDjz32mG699VZlZ2dLos7D4f3331dubq7OnTunr3zlK9qyZYuysrLMfxbUdWht3rxZBw8eVFlZWat9/H2HVk5Ojn7961/ra1/7mk6dOqWf/exnGj16tCorK8Ne1wQlG3K5XAH3DcNotQ3hQd2Hx5w5c3T48GHt3r271T7qPHSGDBmi8vJynTlzRq+++qp+9KMfadeuXeZ+6jp0Tp48qblz52rbtm2Kj4+3LEedh8add95p/jx8+HDl5ubquuuu04svvqhRo0ZJCl9d0/VmI0lJSerVq1er1qOamppWSRmh1TJ7groPvYcfflivvfaa3n77bV199dXmduo89OLi4nT99dfrW9/6lpYtW6ZvfOMb+vnPf05dh8GBAwdUU1OjkSNHKjY2VrGxsdq1a5d+8YtfKDY21qxX6jw8+vXrp+HDh+tvf/tb2P++CUo2EhcXp5EjR2r79u0B27dv367Ro0d301n1DJmZmfJ6vQF139TUpF27dlH3X5JhGJozZ45+//vfa+fOncrMzAzYT52Hn2EYamxspK7DYMyYMXr//fdVXl5u3r71rW/p3/7t31ReXq5rr72WOg+jxsZGHT16VKmpqeH/++7ycHCE1ObNm43evXsb69atM44cOWIUFhYa/fr1M44fP97dp+Z49fX1xqFDh4xDhw4ZkoxVq1YZhw4dMj788EPDMAxj+fLlhsfjMX7/+98b77//vvHDH/7QSE1NNerq6rr5zJ1p1qxZhsfjMf785z8b1dXV5u3s2bNmGeo8dBYuXGj85S9/MY4dO2YcPnzY+Pd//3cjJibG2LZtm2EY1HUkXD7rzTCo81CaN2+e8ec//9n44IMPjNLSUmPSpElGQkKC+b8xnHVNULKh//zP/zQyMjKMuLg448YbbzSnU6Nr3n77bUNSq9uPfvQjwzAuTTEtKioyvF6v4Xa7jX/5l38x3n///e49aQdrq64lGevXrzfLUOehc//995ufG1dddZUxZswYMyQZBnUdCVcGJeo8dP71X//VSE1NNXr37m2kpaUZ99xzj1FZWWnuD2dduwzDMLreLgUAABB9GKMEAABggaAEAABggaAEAABggaAEAABggaAEAABggaAEAABggaAEAABggaAEAABggaAEAABggaAEAABggaAEAABggaAEAABg4f8HoCR/SxOG8QwAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.errorbar(np.arange(num_samples), means, yerr=stds/np.sqrt(num_points_per_sample), fmt='o')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "SSE = calculate_sse(sampled_lab_data, means, num_samples)\n",
    "SSB = calculate_ssb(means, num_samples, num_points_per_sample)\n",
    "\n",
    "dfb = num_samples - 1\n",
    "dfe = num_samples * (num_points_per_sample - 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Error Sum of Squares (SSE):  0.26074343891734947\n",
      "Sum of Squares between samples (SSB):  0.0013302198899046197\n",
      "Degrees of freedom between samples (dfb):  49\n",
      "Degrees of freedom within samples (dfe):  49950\n"
     ]
    }
   ],
   "source": [
    "print(\"Error Sum of Squares (SSE): \", SSE)\n",
    "print(\"Sum of Squares between samples (SSB): \", SSB)\n",
    "print(\"Degrees of freedom between samples (dfb): \", dfb)\n",
    "print(\"Degrees of freedom within samples (dfe): \", dfe)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean Square between samples (MSB):  2.7147344691931013e-05\n",
      "Mean Square within samples (MSE):  5.220088867214203e-06\n",
      "F-value:  5.200552209452843\n",
      "Critical F-value:  1.354\n"
     ]
    }
   ],
   "source": [
    "MSB = SSB / dfb\n",
    "MSE = SSE / dfe\n",
    "F = MSB / MSE\n",
    "\n",
    "print(\"Mean Square between samples (MSB): \", MSB)\n",
    "print(\"Mean Square within samples (MSE): \", MSE)\n",
    "print(\"F-value: \", F)\n",
    "\n",
    "print(\"Critical F-value: \", 1.354) # for alpha = 0.05, dfb = 49, dfe = 49950"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
